home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / mint / mint110s / quickzer.spp < prev    next >
Text File  |  1993-08-16  |  924b  |  39 lines

  1. ; Copyright 1992 Eric R. Smith
  2. ; All rights reserved
  3. ;
  4. ; quickzero(char *place, long size): zero an area of memory. "size" is
  5. ; the number of 256 byte blocks in the area, and must be > 0.
  6. ; registers changed: d0 and a0
  7. ;
  8.     TEXT
  9.     
  10.     XDEF    _quickzero
  11. _quickzero:
  12.     move.l    4(sp),a0    ; place to zero at
  13.     move.l    8(sp),d0    ; number of blocks
  14.     movem.l    d1-d7/a1,-(sp)    ; save registers
  15.     moveq.l    #0,d1        ; zero them out
  16.     moveq.l    #0,d2
  17.     moveq.l    #0,d3
  18.     moveq.l    #0,d4
  19.     moveq.l    #0,d5
  20.     moveq.l    #0,d6
  21.     moveq.l    #0,d7
  22.     move.l    d1,a1
  23.     subq.l    #1,d0        ; adjust for dbra loop
  24. loop:
  25.     movem.l    d1-d7/a1,(a0)    ; zero the memory, 32 bytes at a time
  26.     movem.l    d1-d7/a1,32(a0)
  27.     movem.l    d1-d7/a1,64(a0)
  28.     movem.l    d1-d7/a1,96(a0)
  29.     movem.l    d1-d7/a1,128(a0)
  30.     movem.l    d1-d7/a1,160(a0)
  31.     movem.l    d1-d7/a1,192(a0)
  32.     movem.l    d1-d7/a1,224(a0)
  33.     lea    256(a0),a0
  34.     dbra    d0,loop
  35. ;
  36.     movem.l    (sp)+,d1-d7/a1    ; restore regs
  37.     rts            ; and leave
  38.     END
  39.